#
#Change the name of the compiler you are using, (eg. g++-mp-5)
#
CXX       = g++
#Use: 
#make -k [DEBUG=yes] [VERBOSE=yes] [WITHOUT_PLOT_STAT=yes] [WITH_OPEN_BLAS=yes]
#
# For Windows use 
# eg. mingw32-make -k -f Makefile DEBUG=yes VERBOSE=yes
# eg. mingw32-make -k -f Makefile DEBUG=no VERBOSE=no WITHOUT_PLOT_STAT=no
# eg. mingw32-make -k -f Makefile DEBUG=no VERBOSE=no WITHOUT_PLOT_STAT=yes
#
# For Linux use
# eg. make -k -f Makefile DEBUG=yes VERBOSE=yes
# eg. make -k -f Makefile DEBUG=no VERBOSE=no WITHOUT_PLOT_STAT=no
# eg. make -k -f Makefile DEBUG=no VERBOSE=no WITHOUT_PLOT_STAT=yes
# eg  make -k -f Makefile DEBUG=no VERBOSE=no WITH_OPEN_BLAS=yes WITHOUT_PLOT_STAT=yes
#

LEAC      = ../include
OPENBLAS  = ../openblas
SSEKERNEL = ../sse_kernel

ifndef TOPDIR
TOPDIR = .
endif

ifeq ($(VERBOSE),yes)
  VERBOSE_FLAG = -D __VERBOSE_YES
else
  VERBOSE_FLAG =
endif

ifeq ($(DEBUG),yes)
  OPTIMIZE_FLAG = -O0 -g3
else
  OPTIMIZE_FLAG = -O3 -D NDEBUG
endif

ifeq ($(WITHOUT_PLOT_STAT),yes)
  CONDITIONAL_FLAG = -D __WITHOUT_PLOT_STAT
else
  CONDITIONAL_FLAG = 
endif

#
INCLUDE = -I$(TOPDIR) -I$(LEAC) -I ../include_inout

ifeq ($(WITH_OPEN_BLAS),yes)
#If it is necessary to include the '-static' option 
#OPEN_BLAS_FLAG = -D __WITH_OPEN_BLAS -static
LIBRARIES +=  $(OPENBLAS)/liblapacke.a $(OPENBLAS)/liblapack.a $(OPENBLAS)/libcblas.a $(OPENBLAS)/libopenblas.a  $(SSEKERNEL)/libssekernel.a -lgfortran -lquadmath
INCLUDE += -I$(OPENBLAS) -I$(SSEKERNEL)
else	
OPEN_BLAS_FLAG = -D __WITHOUT_OPEN_BLAS
endif


ifeq ($(DEBUG),yes)
  PFLAGS = -O0 -Wall -g3
else
  PFLAGS = -O2 -Wall -D NDEBUG
endif


ifeq ($(OS),Windows_NT)
    EXEEXT = .exe
    COPY   = copy
    SEPARATOR = &&
    DESBIN = ..\\bin\\
else 
    LIBRARIES += -lstdc++
    COPY   = cp
   SEPARATOR = ;
    DESBIN = ../bin/
endif


.SUFFIXES: .cpp .cxx .cc .C .c
CFLAGS    = -std=c++11 -Wall $(INCLUDE) $(OPTIMIZE_FLAG) $(CONDITIONAL_FLAG) $(VERBOSE_FLAG) $(OPEN_BLAS_FLAG)

#
#GAS CLUSTERING
#
MAIN_GAS=main_gas_clustering.cpp
#
#***************************************PLOT CLUSTERING************************************
#
MAIN_PLOT_CLUSTERING=main_plot_clustering.cpp
#
#
#STANDARDIZATION OF VARIABLES
#
MAIN_STDVAR_MILLIGAN_COOPER1988=main_stdvar_milligan_cooper1988.cpp
#
#***************************************GA CLUSTERING**************************************
#
#***********************************FIXED K --- LABEL-BASED *******************************
#
#GA_MURTHY_CHOWDHURY
GA_CLUSTERING_FKLABEL_MURTHY_CHOWDHURY_1996_BIN=gaclustering_fklabel
#C. A. Murthy and Nirmalya Chowdhury. In search of optimal clusters using
#genetic algorithms. Pattern Recogn. Lett., 17(8):825–832, 1996.
#doi:http://dx.doi.org/10.1016/0167-8655(96)00043-8.
#
#GKA
GKA_FKLABEL_KRISHNA_MURTY_1999_BIN=gka_fklabel
#K. Krishna and M. Narasimha Murty. Genetic k-means algorithm. IEEE Trans-
#actions on Systems, Man, and Cybernetics, Part B (Cybernetics), 29(3):433–439,
#Jun 1999. doi:http://dx.doi.org/10.1109/3477.764879.
#
#FGKA
FGKA_FKLABEL_LU_ETAL_2004_BIN=fgka_fklabel
#Yi Lu, Shiyong Lu, Farshad Fotouhi, Youping Deng, and Susan J. Brown. Fgka:
#a fast genetic k-means clustering algorithm. In Proceedings of the 2004 ACM symposium on
#Applied computing, SAC ’04, pages 622–623, New York, NY, USA, 2004. ACM. doi:http://
#doi.acm.org/10.1145/967900.968029.
#
#IGKA
IGKA_FKLABEL_LU_ETAL_2004_BIN=igka_fklabel
#Yi Lu, Shiyong Lu, Farshad Fotouhi, Youping Deng, and Susan J.
#Brown.Incremental genetic k-means algorithm and its application in gene expression data
#analysis. BMC Bioinformatics, 5:172, 2004.
#
#***********************************FIXED K --- MEDOID-BASED*******************************
# 
#GCA
GCA_FKMEDOID_LUCASIUS_ETAL1993_BIN=gca_fkmedoid
#C.B. Lucasius, A.D. Dane, and G. Kateman. On k-medoid clustering of large data
#sets with the aid of a genetic algorithm: background, feasibility and comparison. Analytica
#Chimica Acta, 282:647–669, 1993.
#
#HKA
HKA_FKMEDOID_SHENG_LIU_2004_BIN=hka_fkmedoid
#Weiguo Sheng and Xiaohui Liu. A hybrid algorithm for k-medoid clustering of
#large data sets. In Evolutionary Computation, 2004. CEC2004. Congress on, volume 1,
#pages 77–82 Vol.1, June 2004. doi:http://dx.doi.org/10.1109/CEC.2004.1330840.
#
#GA PROTOTYPES
GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997_BIN=gaprototypes_fkmedoid
#L. I. Kuncheva and J. C. Bezdek, Selection of cluster prototypes from
#data by a genetic algorithm, in Proc. 5th Eur. Congr. Intell. Tech. Soft
#Comput., 1997, pp. 1683–1688.
#
#
#***********************************FIXED K --- CENTROID-BASED****************************
#
#CBGA
CBGA_FKCENTROID_FRANTI_ETAL_1997_BIN=cbga_fkcentroid
CBGA_FKCENTROID_FRANTI_ETAL_1997_INT_BIN=cbga_fkcentroid_int
#Pasi Franti, Juha Kivijarvi, Timo Kaukoranta, and Olli Nevalainen. Genetic
#algorithms for large scale clustering problems. Comput. J, 40:547–554, 1997.
#
#GAS
GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000_BIN=gas_fkcentroid
# U. Maulik and S. Bandyopadhyay. Genetic algorithm-based clustering
# technique. Pattern Recognition, 33(9):1455–1465, 2000
#
#KGA
KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002_BIN=kga_fkcentroid
# S. Bandyopadhyay and U. Maulik. An evolutionary technique based
# on k-means algorithm for optimal clustering in rn. Inf. Sci. Appl., 
# 146(1-4):221–237, 2002. URL: http://www.sciencedirect.com/science/
# article/pii/S0020025502002086, doi:http://dx.doi.org/10.1016/S0020-
# 0255(02)00208-6.
#
#GAGR
GAGR_FKCENTROID_CHANG_ETAL_2009_BIN=gagr_fkcentroid
# Dong-Xia Chang, Xian-Da Zhang, and Chang-Wen Zheng. A genetic algorithm
# with gene rearrangement for k-means clustering. Pattern Recogn.,
# 42(7):1210–1222, 2009. doi:http://dx.doi.org/10.1016/j.patcog.2008.11.006.
#
#***********************************FIXED K --- OTHERS****************************
#
#GA
GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994_BIN=gaclustering_fkcrispmatrix
#J.C. Bezdek, S. Boggavarapu, L.O. Hall, and A. Bensaid.
#Genetic algorithm guided clustering. In Evolutionary Computation,
#1994. IEEE World Congress on Computational Intelligence., Proceed-
#ings of the First IEEE Conference on, pages 34–39 vol.1, Jun 1994.
#doi:10.1109/ICEC.1994.350046.
#
#******************************* VARIABLE-K --- LABEL-BASED ****************************
#
#CGA
CGA_VKLABEL_HRUSCHKA_EBECKEN_2003_BIN=cga_vklabel
#E. R. Hruschka and N. F. F. Ebecken. A genetic algorithm for cluster analysis.
#Intell. Data Anal., 7(1):15–25, January 2003.
#http://dl.acm.org/citation.cfm?id=1293920.1293922.
#
#EAC
EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO2006_BIN=eac_vklabel
#E. R. Hruschka, R. J. G. B. Campello, and L. N. de Castro, (69) 
#“Improving the efficiency of a clustering genetic algorithm,” 
#in Proc. 9th Ibero-Amer. Conf. Artif. Intell. 
#Lecture Notes in Computer Science, vol. 3315. Berlin,
#Germany: Springer-Verlag, 2004, pp. 861–870.
#
#ECA Evolutionary Algorithm for Clustering  (68), (70)
#E. R. Hruschka, R. J. G. B. Campello and L. N. Castro, 
#Evolving Clusters in Gene-Expression Data, Information Sciences, 
#Elsevier, v. 176 (13), 1898-1927, 2006.
#
#EACI EACII EACIII FEAC
EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN=eaci_vklabel
EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN=eacii_vklabel
EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN=eaciii_vklabel
FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN=feac_vklabelssilhouette
FEAC_VKLABELRANDINDEX_ALVES_CAMPELLO_HRUSCHKA_2006_BIN=feac_vklabelrandindex
#V. S. Alves, R. J. G. B. Campello, and E. R. Hruschka. Towards a fast evolu-
#tionary algorithm for clustering. In IEEE International Conference on Evolutionary Com-
#putation, CEC 2006, part of WCCI 2006, Vancouver, BC, Canada, 16-21 July 2006, pages
#1776–1783. IEEE, 2006. doi:http://dx.doi.org/10.1109/CEC.2006.1688522.
#
#GGA
GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL2012_BIN=gga_vklabeldbindex
GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL2012_BIN=gga_vklabelsilhouette
# L. E. Agust ́ın-Blas, S. Salcedo-Sanz, S. Jim ́enez-Fern ́andez, L. Carro-Calvo,
# J. Del Ser, and J. A. Portilla-Figueras. A new grouping genetic algorithm for clustering
# problems. Expert Syst. Appl., 39(10):9695–9703, August 2012. doi:http://dx.doi.org/
# 10.1016/j.eswa.2012.02.149.
#
#
#******************************* VARIABLE-K --- CENTROID-BASED ****************************
#
#GCUK
GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK2002_BIN=gcuk_vkcentroid
# S. Bandyopadhyay and U. Maulik. Genetic clustering for automatic evolution
# of clusters and application to image classification. Pattern Recognition, 35(6):1197 – 1208,
# 2002. http://www.sciencedirect.com/science/article/pii/S003132030100108X,
# doi:http://dx.doi.org/10.1016/S0031-3203(01)00108-X.
#
#TGCA
TGCA_VKCENTROID_HE_TANG2012_BIN=tgca_vkcentroid
# Hong He and Yonghong Tan. A two-stage genetic algorithm for automatic cluster-
# ing. Neurocomput., 81:49–59, April 2012. doi:http://dx.doi.org/10.1016/j.neucom.
# 2011.11.001.
#
#
#******************************* VARIABLE-K --- OTHERS ****************************
#
#
GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ2003_BIN=gaclustering_vktreebinary
# A. Casillas, M.T. Gonzalez de Lena, and R. Mart ́ınez. Document clustering into
# an unknown number of clusters using a genetic algorithm. In Vaclav Matousek and Pavel
# Mautner, editors, Text, Speech and Dialogue, volume 2807 of Lecture Notes in Computer
# Science, pages 43–49. Springer Berlin Heidelberg, 2003. doi:http://dx.doi.org/10.1007/
# 978-3-540-39398-6_7.
#
#CLUSTERING
CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG2001_BIN=clustering_vksubclusterbinary
# Lin Yu Tseng and Shiueng Bien Yang. A genetic approach to the automatic
# clustering problem. Pattern Recognition, 34(2):415 – 424, 2001. doi:http://dx.doi.org/
# 10.1016/S0031-3203(00)00005-4.
#
#
#
#******************************* TOOLS FOR CLUSTERING ********************************

#STDVAR
STDVAR_MILLIGAN_COOPER1988_BIN=stdvar_milligan_cooper1988
# G.W. Milligan and M.C. Cooper. A study of standardization of variables in cluster
# analysis. J. Classification, 5:181–204, 1988. doi:http://www.springerlink.com/content/
# t588424722r23031.
#
#PLOT
PLOT_CLUSTERING_BIN=plot_clustering
#
#
#
#
.c.o:   
	${CXX} -c ${CFLAGS}  $< -o $@

.cpp.o:
	${CXX} -c ${CFLAGS}  $< -o $@

.cxx.o:
	${CXX} -c ${CFLAGS}  $< -o $@

.cc.o:
	${CXX} -c ${CFLAGS}  $< -o $@

.C.o:
	${CXX} -c ${CFLAGS}  $< -o $@

all: $(GA_CLUSTERING_FKLABEL_MURTHY_CHOWDHURY_1996_BIN) $(GKA_FKLABEL_KRISHNA_MURTY_1999_BIN) $(FGKA_FKLABEL_LU_ETAL_2004_BIN) $(IGKA_FKLABEL_LU_ETAL_2004_BIN) $(GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997_BIN) $(GCA_FKMEDOID_LUCASIUS_ETAL1993_BIN) $(HKA_FKMEDOID_SHENG_LIU_2004_BIN) $(CBGA_FKCENTROID_FRANTI_ETAL_1997_BIN) $(CBGA_FKCENTROID_FRANTI_ETAL_1997_INT_BIN) $(GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000_BIN) $(KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002_BIN) $(GAGR_FKCENTROID_CHANG_ETAL_2009_BIN) $(GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994_BIN) $(CGA_VKLABEL_HRUSCHKA_EBECKEN_2003_BIN) $(EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO2006_BIN) $(EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN) $(EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN) $(EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN) $(FEAC_VKLABELRANDINDEX_ALVES_CAMPELLO_HRUSCHKA_2006_BIN) $(FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN) $(GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL2012_BIN) $(GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL2012_BIN) $(GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK2002_BIN) $(TGCA_VKCENTROID_HE_TANG2012_BIN) $(GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ2003_BIN) $(CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG2001_BIN) $(STDVAR_MILLIGAN_COOPER1988_BIN) $(PLOT_CLUSTERING_BIN) 

gaclustering_fklabel: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GA_CLUSTERING_LABELBASED_MURTHY_AND_CHOWDHURY_1996  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GA_CLUSTERING_FKLABEL_MURTHY_CHOWDHURY_1996_BIN)

gka_fklabel: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GKA_FKLABEL_KRISHNA_AND_MURTY_1999  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GKA_FKLABEL_KRISHNA_MURTY_1999_BIN)

fgka_fklabel: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_FGKA_FKLABEL_LU_ETAL2004  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(FGKA_FKLABEL_LU_ETAL_2004_BIN)

igka_fklabel: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_IGKA_FKLABEL_LU_ETAL2004  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(IGKA_FKLABEL_LU_ETAL_2004_BIN)

gca_fkmedoid: 
	${CXX} ${CFLAGS} -I$(LEAC) -D __MEDOIDS_ALGORITHM -D ALG_GCA_FKMEDOID_LUCASIUS_ETAL1993  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GCA_FKMEDOID_LUCASIUS_ETAL1993_BIN)

gaprototypes_fkmedoid: 
	${CXX} ${CFLAGS} -I$(LEAC) -D __MEDOIDS_ALGORITHM -D ALG_GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997_BIN)

hka_fkmedoid: 
	${CXX} ${CFLAGS} -I$(LEAC) -D __MEDOIDS_ALGORITHM -D ALG_HKA_FKMEDOID_SHENG_LUI2004  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(HKA_FKMEDOID_SHENG_LIU_2004_BIN)

cbga_fkcentroid: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_CBGA_FKCENTROID_FRANTI_ETAL_1997 -D __INSTANCES_WITH_FREQUENCY  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(CBGA_FKCENTROID_FRANTI_ETAL_1997_BIN)

cbga_fkcentroid_int: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_CBGA_FKCENTROID_FRANTI_ETAL_1997 -D __INSTANCES_WITH_FREQUENCY  -D __INTEGER_INSTANCES__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(CBGA_FKCENTROID_FRANTI_ETAL_1997_INT_BIN)

gas_fkcentroid:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000_BIN)

kga_fkcentroid: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002 ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002_BIN)

gagr_fkcentroid:
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GAGR_FKCENTROID_CHANG_ETAL_2009 ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GAGR_FKCENTROID_CHANG_ETAL_2009_BIN) 

gaclustering_fkcrispmatrix: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994_BIN)

cga_vklabel:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_CGA_VKLABEL_HRUSCHKA_EBECKEN_2003  -D __FITNESS_SIMPLIFIED_SILHOUETTE__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(CGA_VKLABEL_HRUSCHKA_EBECKEN_2003_BIN)

eac_vklabel:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO_2006  -D __FITNESS_SIMPLIFIED_SILHOUETTE__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO2006_BIN)

eaci_vklabel:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006  -D __FITNESS_SIMPLIFIED_SILHOUETTE__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)

eacii_vklabel:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006  -D __FITNESS_SIMPLIFIED_SILHOUETTE__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)

eaciii_vklabel:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006  -D __FITNESS_SIMPLIFIED_SILHOUETTE__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)

feac_vklabelssilhouette:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006  -D __FITNESS_SIMPLIFIED_SILHOUETTE__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)

feac_vklabelrandindex:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006 -D __FITNESS_RAND_INDEX__ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(FEAC_VKLABELRANDINDEX_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)

gga_vklabeldbindex:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL_2012  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL2012_BIN)

gga_vklabelsilhouette:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL_2012  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL2012_BIN)

gcuk_vkcentroid:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK_2002 ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK2002_BIN)

tgca_vkcentroid: 
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_TGCA_VKCENTROID_HE_AND_TAN_2012 ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(TGCA_VKCENTROID_HE_TANG2012_BIN)

gaclustering_vktreebinary:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ_2003  -D _ALG_GRAPH_BASED_ -D _INITIATES_KMIN_KMAX_POPULATION_ ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ2003_BIN)

clustering_vksubclusterbinary:  
	${CXX} ${CFLAGS} -I$(LEAC) -D ALG_CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG_2001  ${MAIN_GAS}  ${LIBRARIES} -fopenmp -o $(CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG2001_BIN)

stdvar_milligan_cooper1988: 
	${CXX} ${CFLAGS}  -D __NOT_TEST_FILES__ ${MAIN_STDVAR_MILLIGAN_COOPER1988}  ${LIBRARIES} -fopenmp -o $(STDVAR_MILLIGAN_COOPER1988_BIN)

plot_clustering: 
	${CXX} ${CFLAGS} -I$(LEAC) ${MAIN_PLOT_CLUSTERING}  gnuplot_i.c ${LIBRARIES} -fopenmp -o $(PLOT_CLUSTERING_BIN)

#	rm  ../include_inout/*.o ../bin/*$(EXEEXT) ./*$(EXEEXT)
clean:
	rm $(DESBIN)$(GA_CLUSTERING_FKLABEL_MURTHY_CHOWDHURY_1996_BIN)$(EXEEXT) $(DESBIN)$(GKA_FKLABEL_KRISHNA_MURTY_1999_BIN)$(EXEEXT) $(DESBIN)$(FGKA_FKLABEL_LU_ETAL_2004_BIN)$(EXEEXT) $(DESBIN)$(IGKA_FKLABEL_LU_ETAL_2004_BIN)$(EXEEXT) $(DESBIN)$(GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997_BIN)$(EXEEXT) $(DESBIN)$(GCA_FKMEDOID_LUCASIUS_ETAL1993_BIN)$(EXEEXT) $(DESBIN)$(HKA_FKMEDOID_SHENG_LIU_2004_BIN)$(EXEEXT) $(DESBIN)$(CBGA_FKCENTROID_FRANTI_ETAL_1997_BIN)$(EXEEXT) $(DESBIN)$(CBGA_FKCENTROID_FRANTI_ETAL_1997_INT_BIN)$(EXEEXT) $(DESBIN)$(GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000_BIN)$(EXEEXT) $(DESBIN)$(KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002_BIN)$(EXEEXT) $(DESBIN)$(GAGR_FKCENTROID_CHANG_ETAL_2009_BIN)$(EXEEXT) $(DESBIN)$(GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994_BIN)$(EXEEXT) $(DESBIN)$(CGA_VKLABEL_HRUSCHKA_EBECKEN_2003_BIN)$(EXEEXT) $(DESBIN)$(EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO2006_BIN)$(EXEEXT) $(DESBIN)$(EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN)$(EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN)$(EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN)$(FEAC_VKLABELRANDINDEX_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN)$(FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN)$(GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL2012_BIN)$(EXEEXT) $(DESBIN)$(GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL2012_BIN)$(EXEEXT) $(DESBIN)$(GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK2002_BIN)$(EXEEXT) $(DESBIN)$(TGCA_VKCENTROID_HE_TANG2012_BIN)$(EXEEXT) $(DESBIN)$(GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ2003_BIN)$(EXEEXT) $(DESBIN)$(CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG2001_BIN)$(EXEEXT) $(DESBIN)$(STDVAR_MILLIGAN_COOPER1988_BIN)$(EXEEXT) $(DESBIN)$(PLOT_CLUSTERING_BIN)$(EXEEXT) $(GA_CLUSTERING_FKLABEL_MURTHY_CHOWDHURY_1996_BIN)$(EXEEXT) $(GKA_FKLABEL_KRISHNA_MURTY_1999_BIN)$(EXEEXT) $(FGKA_FKLABEL_LU_ETAL_2004_BIN)$(EXEEXT) $(IGKA_FKLABEL_LU_ETAL_2004_BIN)$(EXEEXT) $(GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997_BIN)$(EXEEXT) $(GCA_FKMEDOID_LUCASIUS_ETAL1993_BIN)$(EXEEXT) $(HKA_FKMEDOID_SHENG_LIU_2004_BIN)$(EXEEXT) $(CBGA_FKCENTROID_FRANTI_ETAL_1997_BIN)$(EXEEXT) $(CBGA_FKCENTROID_FRANTI_ETAL_1997_INT_BIN)$(EXEEXT) $(GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000_BIN)$(EXEEXT) $(KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002_BIN)$(EXEEXT) $(GAGR_FKCENTROID_CHANG_ETAL_2009_BIN)$(EXEEXT) $(GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994_BIN)$(EXEEXT) $(CGA_VKLABEL_HRUSCHKA_EBECKEN_2003_BIN)$(EXEEXT) $(EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO2006_BIN)$(EXEEXT) $(EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(FEAC_VKLABELRANDINDEX_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT)  $(FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL2012_BIN)$(EXEEXT) $(GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL2012_BIN)$(EXEEXT) $(GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK2002_BIN)$(EXEEXT) $(TGCA_VKCENTROID_HE_TANG2012_BIN)$(EXEEXT) $(GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ2003_BIN)$(EXEEXT) $(CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG2001_BIN)$(EXEEXT) $(STDVAR_MILLIGAN_COOPER1988_BIN)$(EXEEXT) $(PLOT_CLUSTERING_BIN)$(EXEEXT)


install:
	$(COPY) $(GA_CLUSTERING_FKLABEL_MURTHY_CHOWDHURY_1996_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GKA_FKLABEL_KRISHNA_MURTY_1999_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(FGKA_FKLABEL_LU_ETAL_2004_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(IGKA_FKLABEL_LU_ETAL_2004_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GAPROTOTYPES_FKMEDOID_KUNCHEVA_BEZDEK_1997_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GCA_FKMEDOID_LUCASIUS_ETAL1993_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(HKA_FKMEDOID_SHENG_LIU_2004_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(CBGA_FKCENTROID_FRANTI_ETAL_1997_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(CBGA_FKCENTROID_FRANTI_ETAL_1997_INT_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GAS_FKCENTROID_MAULIK_BANDYOPADHYAY_2000_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(KGA_FKCENTROID_BANDYOPADHYAY_MAULIK_2002_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GAGR_FKCENTROID_CHANG_ETAL_2009_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GACLUSTERING_FKCRISPMATRIX_BEZDEK_ETAL_1994_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(CGA_VKLABEL_HRUSCHKA_EBECKEN_2003_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(EAC_VKLABEL_HRUSCHKA_CAMPELLO_CASTRO2006_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(EACI_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(EACII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(EACIII_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(FEAC_VKLABELRANDINDEX_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(FEAC_VKLABEL_ALVES_CAMPELLO_HRUSCHKA_2006_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GCUK_VKCENTROID_BANDYOPADHYAY_AND_MAULIK2002_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(TGCA_VKCENTROID_HE_TANG2012_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GGA_VKLABEL_DBINDEX_AGUSTIN_ETAL2012_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GGA_VKLABEL_SILHOUETTE_AGUSTIN_ETAL2012_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(GA_CLUSTERING_VKTREEBINARY_CASILLAS_GONZALEZ_MARTINEZ2003_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(CLUSTERING_VKSUBCLUSTERBINARY_TSENG_YANG2001_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(STDVAR_MILLIGAN_COOPER1988_BIN)$(EXEEXT) $(DESBIN) $(SEPARATOR) $(COPY) $(PLOT_CLUSTERING_BIN)$(EXEEXT) $(DESBIN)
